home *** CD-ROM | disk | FTP | other *** search
File List | 1985-11-20 | 9.1 KB | 421 lines |
- ' Carlos Varela's Hypertext System Beta Version
- '
- ' This is a legal agreement between you (the end user) and Carlos
- ' Varela, before using this program, you should carefully read the
- ' following terms and conditions. If you do not agree to the terms
- ' of this agreement, promptly destroy the program and source code.
- '
- ' This program and source code are provide "AS IS". Carlos Varela
- ' makes no warranty express or implied with respect to the program
- ' or the source code. The entire risk arising out of use or
- ' performance of the program and source code remains with you.
- '
- ' In no event will Carlos Varela be liable for any lost profits,
- ' lost savings, incidental damages or other economic consequencial
- ' damages.
- '
- '
-
-
-
- CLS
- @init
- > PROCEDURE buttondown
- DEFFILL 2
- PBOX 600,165,620,175
- COLOR 1
- BOX 598,163,622,177
- COLOR 0
- LINE 599,164,621,164
- LINE 599,164,599,176
- COLOR 3
- LINE 599,176,621,176
- LINE 621,164,621,176
- COLOR 1
- BOX 609,167,610,173
- LINE 606,170,613,170
- LINE 607,169,612,169
- LINE 608,168,611,168
- LINE 609,167,610,167
- RETURN
- > PROCEDURE buttondown2
- COLOR 3
- LINE 599,164,621,164
- LINE 599,164,599,176
- GET 600,165,620,175,temp$
- PUT 601,165,temp$
- temp$=""
- @scrolldown
- @buttondown
- RETURN
- > PROCEDURE buttonup
- DEFFILL 2
- PBOX 600,180,620,190
- COLOR 1
- BOX 598,178,622,192
- COLOR 0
- LINE 599,179,621,179
- LINE 599,179,599,191
- COLOR 3
- LINE 599,191,621,191
- LINE 621,179,621,191
- COLOR 1
- BOX 609,182,610,188
- LINE 606,185,613,185
- LINE 607,186,612,186
- LINE 608,187,611,187
- LINE 609,188,610,188
- RETURN
- > PROCEDURE buttonup2
- COLOR 3
- LINE 599,179,621,179
- LINE 599,179,599,191
- GET 600,180,620,190,temp$
- PUT 601,181,temp$
- temp$=""
- @scrollup
- @buttonup
- RETURN
- > PROCEDURE closebusybox
- PUT 160,75,busybox$
- RETURN
- > PROCEDURE displayfirstlines
- toplinedisplayer=1
- FOR n=0 TO 15
- PRINT AT(5,n+4);SPACE$(72)
- PRINT AT(5,n+4);a$(n)
- NEXT n
- RETURN
- > PROCEDURE drawboxbutton(x,y,box$)
- COLOR 1
- BOX x,y,x+100,y+12
- DEFFILL 2
- PBOX x+2,y+2,x+98,y+10
- COLOR 0
- LINE x+1,y+1,x+99,y+1
- LINE x+1,y+1,x+1,y+11
- COLOR 3
- LINE x+99,y+1,x+99,y+11
- LINE x+1,y+11,x+99,y+11
- GRAPHMODE 2
- TEXT x+27,y+9,box$
- GRAPHMODE 1
- RETURN
- > PROCEDURE drawboxbuttondown(x,y,box$)
- COLOR 3
- LINE x+1,y+1,x+99,y+1
- LINE x+1,y+1,x+1,y+11
- GET x+2,y+2,x+98,y+10,temp$
- PUT x+3,y+3,temp$
- RETURN
- > PROCEDURE drawbusybox(text$)
- GET 160,75,480,125,busybox$
- DEFFILL 2
- PBOX 160,75,480,125
- COLOR 1
- BOX 160,75,480,125
- BOX 178,103,462,117
- COLOR 0
- LINE 179,104,179,116
- LINE 179,104,461,104
- COLOR 3
- LINE 461,104,461,116
- LINE 179,116,461,116
- DEFFILL 0
- PBOX 180,105,460,115
- PBOX 180,85,460,95
- COLOR 1
- BOX 178,83,462,97
- COLOR 3
- LINE 179,84,179,96
- LINE 179,84,461,84
- COLOR 0
- TEXT 188,92,text$
- RETURN
- > PROCEDURE drawmenu
- CLS
- COLOR 1
- BOX 0,0,639,199
- COLOR 2
- BOX 1,1,638,198
- COLOR 3
- BOX 2,2,637,197
- BOX 3,3,636,196
- COLOR 1
- BOX 25,5,624,20
- COLOR 2
- LINE 26,6,26,19
- LINE 623,6,623,19
- COLOR 3
- LINE 27,6,623,6
- LINE 27,6,27,19
- TEXT 130,16,"HyperText System (Beta) by Carlos Varela (18-Oct-1992)"
- ' Arrows
- @buttonup
- @buttondown
- '
- COLOR 1
- BOX 25,20,624,155
- COLOR 2
- BOX 26,21,27,154
- COLOR 3
- BOX 28,21,623,154
- LINE 29,21,29,154
- ' info
- @drawboxbutton(25,180," Info")
- @drawboxbutton(135,180," Load")
- @drawboxbutton(245,180,"Status")
- @drawboxbutton(355,180," Quit")
- @drawboxbutton(465,180," Help")
- @drawboxbutton(25,165," ")
- @drawboxbutton(135,165," ")
- @drawboxbutton(245,165," ")
- @drawboxbutton(355,165," ")
- @drawboxbutton(465,165," ")
- RETURN
- > PROCEDURE exit
- QUIT
- RETURN
- > PROCEDURE formattext
- xp=0
- FOR n2=1 TO d
- b$=MID$(c$,n2,1)
- SELECT b$
- CASE "!"
- INC totallinks
- linkl(totallinks)=n
- linkx1(totallinks)=xp
- a$(n)=a$(n)+gf$
- @untilanotherexclamation
- CASE "~"
- linkx2(totallinks)=xp
- a$(n)=a$(n)+bf$
- DEFAULT
- INC xp
- a$(n)=a$(n)+b$
- ENDSELECT
- NEXT n2
- RETURN
- > PROCEDURE init
- DEFMOUSE 3
- @vt52
- @setcolors
- @drawmenu
- DO
- @waitformouse
- LOOP
- RETURN
- > PROCEDURE load
- totallines=0
- ERASE a$(),link$(),linkx1(),linkx2(),linkl()
- DIM a$(10000),link$(10000),linkx1(10000),linkx2(10000),linkl(10000)
- FILESELECT "A:\*.CVH",e$,filename$
- OPEN "I",#1,filename$
- WHILE NOT EOF(#1)
- LINE INPUT #1,a$(totallines)
- INC totallines
- WEND
- DEC totallines
- CLOSE #1
- @drawbusybox("Formatting Text...")
- FOR n=1 TO totallines
- d=LEN(a$(n))
- c$=a$(n)
- a$(n)=""
- @updatebusybox(n,totallines)
- IF d>0
- @formattext
- ENDIF
- NEXT n
- @closebusybox
- @displayfirstlines
- @drawboxbutton(135,180,"Load")
- RETURN
- > PROCEDURE load2
- totallines=0
- ERASE a$(),link$(),linkx1(),linkx2(),linkl()
- DIM a$(10000),link$(10000),linkx1(10000),linkx2(10000),linkl(10000)
- OPEN "I",#1,filename$
- WHILE NOT EOF(#1)
- INC totallines
- LINE INPUT #1,a$(totallines)
- WEND
- CLOSE #1
- @drawbusybox("Formatting Text...")
- totallinks=0
- FOR n=1 TO totallines
- d=LEN(a$(n))
- c$=a$(n)
- a$(n)=""
- @updatebusybox(n,totallines)
- IF d>0
- @formattext
- ENDIF
- NEXT n
- @closebusybox
- @displayfirstlines
- @drawboxbutton(135,180,"Load")
- RETURN
- > PROCEDURE loadtext
- DIM a$(10000)
- OPEN "I",#1,"SHELL.DOC"
- RECALL #1,a$(),-1,totallines
- CLOSE #1
- FOR n=1 TO totallines
- b$=MID$(a$(n),1,72)
- a$(n)=b$+SPACE$(72-LEN(b$))
- NEXT n
- RETURN
- > PROCEDURE scrolldown
- IF toplinedisplayer>1
- DEC toplinedisplayer
- screenstart=XBIOS(2)
- BMOVE screenstart+3680,screenstart+4960,19680
- n=toplinedisplayer-1
- PRINT AT(5,4);SPACE$(72)
- PRINT AT(5,4);a$(n)
- ENDIF
- RETURN
- > PROCEDURE scrollup
- IF toplinedisplayer<totallines-16
- INC toplinedisplayer
- screenstart=XBIOS(2)
- BMOVE screenstart+4960,screenstart+3680,19680
- n=toplinedisplayer+16
- PRINT AT(5,19);SPACE$(72)
- PRINT AT(5,19);a$(n)
- ENDIF
- RETURN
- > PROCEDURE setcolors
- SETCOLOR 3,0
- SETCOLOR 2,&H333
- SETCOLOR 1,&H555
- SETCOLOR 0,&H777
- RETURN
- > PROCEDURE status
- GET 60,30,585,173,temp$
- DEFFILL 2
- PBOX 60,30,580,170
- COLOR 1
- BOX 60,30,580,170
- DEFFILL 3
- PBOX 65,171,585,173
- PBOX 581,35,585,173
- COLOR 0
- LINE 61,31,61,169
- LINE 61,31,579,31
- LINE 62,32,62,168
- LINE 62,32,578,32
- LINE 63,33,63,167
- COLOR 3
- LINE 61,169,579,169
- LINE 579,31,579,169
- LINE 62,168,578,168
- LINE 578,32,578,168
- LINE 577,33,577,167
- freememory$=STR$(FRE(0))
- ' freememory$="0"
- IF filename$=""
- filename$=".CVH"
- ENDIF
- freememory$="Free memory"+STRING$(49-LEN(freememory$),".")+freememory$
- freedisk$=STR$(DFREE(0))
- freedisk$="Free disk space on drive A"+STRING$(34-LEN(freedisk$),".")+freedisk$
- totallines$=STR$(totallines)
- totallines$="Number of lines"+STRING$(45-LEN(totallines$),".")+totallines$
- totallinks$=STR$(totallinks)
- totallinks$="Number of links"+STRING$(45-LEN(totallinks$),".")+totallinks$
- topfilename$="File "+MID$(filename$,1,LEN(filename$)-4)+" Status"
- topfilename$=topfilename$+STRING$(60-LEN(topfilename$),".")
- GRAPHMODE 2
- DEFTEXT 0
- TEXT 80,45,"Program Status.............................................."
- TEXT 80,77,topfilename$
- DEFTEXT 1
- TEXT 80,53,freememory$
- TEXT 80,61,freedisk$
- TEXT 80,85,totallines$
- TEXT 80,93,totallinks$
- freememory$=""
- freedisk$=""
- GRAPHMODE 1
- REPEAT
- UNTIL MOUSEK
- PUT 60,30,temp$
- @drawboxbutton(245,180,"Status")
- RETURN
- > PROCEDURE untilanotherexclamation
- DO
- INC n2
- b$=MID$(c$,n2,1)
- EXIT IF b$="!"
- link$(totallinks)=link$(totallinks)+b$
- LOOP
- RETURN
- > PROCEDURE updatebusybox(done,total)
- DEFFILL 2
- PBOX 180,105,180+280*(done/total),115
- RETURN
- > PROCEDURE vt52
- bf$=CHR$(27)+CHR$(98)+CHR$(3)
- gf$=CHR$(27)+CHR$(98)+CHR$(1)
- RETURN
- > PROCEDURE waitformouse
- IF MOUSEK=1
- mx=MOUSEX
- my=MOUSEY
- IF mx>597 AND mx<623
- IF my>177 AND my<193
- @buttonup2
- ELSE IF my>162 AND 174
- @buttondown2
- ENDIF
- ENDIF
- ' quit box
- IF mx>354 AND mx<456
- IF my>179 AND my<193
- @drawboxbuttondown(355,180,"")
- @exit
- ENDIF
- ENDIF
- ' status
- IF mx>244 AND mx<346
- IF my>179 AND my<193
- @drawboxbuttondown(245,180,"")
- @status
- ENDIF
- ENDIF
- ' load
- IF mx>134 AND mx<236
- IF my>179 AND my<193
- @drawboxbuttondown(135,180,"")
- @load
- ENDIF
- ENDIF
- ' checklinkclick
- IF mx>26 AND mx<624
- IF my>21 AND my<154
- @findlinks
- ENDIF
- ENDIF
- ENDIF
- RETURN
- > PROCEDURE findlinks
- linkxp=INT(mx/8)-4
- IF toplinedisplayer=1
- linkyp=INT(my/8)-4+toplinedisplayer
- ELSE
- linkyp=INT(my/8)-2+toplinedisplayer
- ENDIF
- ' PRINT linkxp,linkyp
- filename$=""
- FOR n=1 TO totallinks
- IF linkyp=linkl(n) AND (linkxp>=linkx1(n) AND linkxp<=linkx2(n))
- filename$=link$(n)+".CVH"
- ENDIF
- NEXT n
- IF filename$<>""
- @load2
- ENDIF
- RETURN
-